findAllBy*
用途
使用domain类属性来动态创建Grails查询方法表达式,返回所有domain类实例
举例
假定有domain类 Book
如下:class Book {
Long id
Long version
String title
Date releaseDate
String author
}
下面一些可能的查询方法:
def results = Book.findAllByTitle("The Shining", [max:10, sort:"title", order:"desc", offset:100] )
results = Book.findAllByTitleAndAuthor("The Sum of All Fears", "Tom Clancy")
results = Book.findAllByReleaseDateBetween(firstDate, new Date())
results = Book.findAllByReleaseDateGreaterThanEquals(firstDate)
results = Book.findAllByTitleLike("%Hobbit%")
results = Book.findAllByTitleIlike("%Hobbit%") // (since 0.5) - ignorecase
results = Book.findAllByTitleNotEqual("Harry Potter")
results = Book.findAllByReleaseDateIsNull()
results = Book.findAllByReleaseDateIsNotNull()
描述
GORM 支持Dynamic Finders概念,findAllBy*
方法按照给定方法表达式查出所有结果。
参数:
paginateParams
- 包含max
, order
, offset
和 sort
参数Map
分页和排序参数做为动态方法的最后参数:
def results = Book.findAllByTitle(
"The Shining", [max:10, sort:"title",
order:"desc", offset:100] )
在各个动态方法中使用如下操作名:
LessThan
LessThanEquals
GreaterThan
GreaterThanEquals
Between
Like
Ilike
(i.e. ignorecase like)
IsNotNull
IsNull
Not
Equal
NotEqual
And
Or
上面操作名可以被认为关键字,当使用属性名查询domain类运行到问题。更多信息看参考用户手册的 dynamic finders 章节。